<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xml:lang="en" version="3.0.0 2010-01-26">
  <annotation>
    <appinfo source="urn:opengis:specification:gml:schema-coordinateOperations:v3.0.0"/>
    <documentation>
      <name>coordinateOperations.xsd</name>
      <version>3.0 updated 2010-01-26</version>
      <scope>How to encode coordinate operation definitions. </scope>
      <description>Builds on referenceSystems.xsd to encode the data needed to define coordinate operations, including Transformations, Conversions, and other specific subtypes of operations. GML 3.0 candidate schema, primary editor: Arliss Whiteside.</description>
      <copyright>
        GML is an OGC Standard.
        Copyright (c) 2001,2002,2010 Open Geospatial Consortium, Inc. All Rights Reserved.
        To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
      </copyright>
      <conformance>This schema encodes the Coordinate Operation (CC_) package of the extended UML Model for OGC Abstract Specification Topic 2: Spatial Referencing by Coordinates. That UML model is adapted from ISO 19111 - Spatial referencing by coordinates, as described in Annex B of Topic 2. </conformance>
      <ChangeLog>
        <Changes>May-November 2002: See Section 3.5 of document 02-095. </Changes>
        <Change>December 3, 2002. Corrected extension base in OperationMethodType. </Change>
        <Change>December 13, 2002. Corrected "source" attribute in appinfo. </Change>
      </ChangeLog>
    </documentation>
  </annotation>
  <!-- ==============================================================
       includes and imports
	============================================================== -->
  <include schemaLocation="referenceSystems.xsd"/>
  <include schemaLocation="dataQuality.xsd"/>
  <!-- ==============================================================
       elements and types
	============================================================== -->
  <element name="_CoordinateOperation" type="gml:AbstractCoordinateOperationType" abstract="true" substitutionGroup="gml:_CRSObject"/>
  <!-- =========================================================== -->
  <complexType name="AbstractCoordinateOperationType" abstract="true">
    <annotation>
      <documentation>A mathematical operation on coordinates that transforms or converts coordinates to another coordinate reference system.</documentation>
    </annotation>
    <complexContent>
      <extension base="gml:AbstractCRSObjectType">
        <sequence>
          <element name="coordinateOperationID" type="gml:ExtendedIdentifierType">
            <annotation>
              <documentation>Identification of this Coordinate Operation. </documentation>
            </annotation>
          </element>
          <element name="coordinateOperationVersion" type="string" minOccurs="0">
            <annotation>
              <documentation>Version of the coordinate transformation (i.e., instantiation due to the stochastic nature of the parameters). Mandatory when describing a transformation, and should not be supplied for a conversion. </documentation>
            </annotation>
          </element>
          <element name="sourceDimensions" type="positiveInteger">
            <annotation>
              <documentation>Required number of dimensions in the source CRS. </documentation>
            </annotation>
          </element>
          <element name="targetDimensions" type="positiveInteger">
            <annotation>
              <documentation>Required number of dimensions in the target CRS. </documentation>
            </annotation>
          </element>
          <element ref="gml:_PositionalAccuracy" minOccurs="0">
            <annotation>
              <documentation>Estimate of the impact of this coordinate operation on point position accuracy. Gives position error estimates for target coordinates of this coordinate operation, assuming no errors in source coordinates. </documentation>
            </annotation>
          </element>
          <element name="sourceCRS" type="gml:CRSRefType" minOccurs="0">
            <annotation>
              <documentation>Association to the source CRS (coordinate reference system) of this coordinate operation. </documentation>
            </annotation>
          </element>
          <element name="targetCRS" type="gml:CRSRefType" minOccurs="0">
            <annotation>
              <documentation>Association to the target CRS (coordinate reference system) of this coordinate operation. For constraints on multiplicity of "sourceCRS" and "targetCRS", see UML model of Coordinate Operation package in OGC Abstract Specification topic 2. </documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="coordinateOperationRef" type="gml:CoordinateOperationRefType"/>
  <!-- =========================================================== -->
  <complexType name="CoordinateOperationRefType">
    <annotation>
      <documentation>Association to a Coordinate Operation, either referencing or containing the definition of that Coordinate Operation. </documentation>
    </annotation>
    <sequence>
      <element ref="gml:_CoordinateOperation" minOccurs="0"/>
    </sequence>
    <attributeGroup ref="gml:AssociationAttributeGroup"/>
  </complexType>
  <!-- =========================================================== -->
  <element name="ConcatenatedOperation" type="gml:ConcatenatedOperationType" substitutionGroup="gml:_CoordinateOperation"/>
  <!-- =========================================================== -->
  <complexType name="ConcatenatedOperationType">
    <annotation>
      <documentation>An ordered sequence of two or more single coordinate operations. The sequence of operations is constrained by the requirement that the source coordinate reference system of step (n+1) must be the same as the target coordinate reference system of step (n). The source coordinate reference system of the first step and the target coordinate reference system of the last step are the source and target coordinate reference system associated with the concatenated operation. </documentation>
    </annotation>
    <complexContent>
      <extension base="gml:AbstractCoordinateOperationType">
        <sequence>
          <element name="usesOperation" type="gml:SingleOperationRefType" minOccurs="2" maxOccurs="unbounded">
            <annotation>
              <documentation>Ordered sequence of associations to the two or more single operations used by this concatenated operation. </documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="concatenatedOperationRef" type="gml:ConcatenatedOperationRefType" substitutionGroup="gml:coordinateOperationRef"/>
  <!-- =========================================================== -->
  <complexType name="ConcatenatedOperationRefType">
    <annotation>
      <documentation>Association to a Concatenated Operation, either referencing or containing the definition of that Concatenated Operation. </documentation>
    </annotation>
    <complexContent>
      <restriction base="gml:CoordinateOperationRefType">
        <sequence>
          <element ref="gml:ConcatenatedOperation" minOccurs="0"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
      </restriction>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="_SingleOperation" type="gml:AbstractSingleOperationType" abstract="true" substitutionGroup="gml:_CoordinateOperation"/>
  <!-- =========================================================== -->
  <complexType name="AbstractSingleOperationType" abstract="true">
    <annotation>
      <documentation>A single (not concatenated) coordinate operation. </documentation>
    </annotation>
    <complexContent>
      <extension base="gml:AbstractCoordinateOperationType"/>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="singleOperationRef" type="gml:SingleOperationRefType" substitutionGroup="gml:coordinateOperationRef"/>
  <!-- =========================================================== -->
  <complexType name="SingleOperationRefType">
    <annotation>
      <documentation>Association to a Single Operation, either referencing or containing the definition of that Single Operation. </documentation>
    </annotation>
    <complexContent>
      <restriction base="gml:CoordinateOperationRefType">
        <sequence>
          <element ref="gml:_SingleOperation" minOccurs="0"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
      </restriction>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="PassThroughOperation" type="gml:PassThroughOperationType" substitutionGroup="gml:_SingleOperation"/>
  <!-- =========================================================== -->
  <complexType name="PassThroughOperationType">
    <annotation>
      <documentation>A pass-through operation specifies that a subset of a coordinate tuple is subject to a specific coordinate operation. </documentation>
    </annotation>
    <complexContent>
      <extension base="gml:AbstractSingleOperationType">
        <sequence>
          <element name="modifiedCoordinate" type="positiveInteger" maxOccurs="unbounded">
            <annotation>
              <documentation>Ordered sequence of positive integers defining the positions in a coordinate tuple of the coordinates affected by this pass-through operation. </documentation>
            </annotation>
          </element>
          <element name="usesOperation" type="gml:OperationRefType">
            <annotation>
              <documentation>Association to the operation applied to the specified ordinates. </documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="passThroughOperationRef" type="gml:PassThroughOperationRefType" substitutionGroup="gml:singleOperationRef"/>
  <!-- =========================================================== -->
  <complexType name="PassThroughOperationRefType">
    <annotation>
      <documentation>Association to a Pass Through Operation, either referencing or containing the definition of that Pass Through Operation. </documentation>
    </annotation>
    <complexContent>
      <restriction base="gml:SingleOperationRefType">
        <sequence>
          <element ref="gml:PassThroughOperation" minOccurs="0"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
      </restriction>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="_Operation" type="gml:AbstractOperationType" abstract="true" substitutionGroup="gml:_SingleOperation"/>
  <!-- =========================================================== -->
  <complexType name="AbstractOperationType" abstract="true">
    <annotation>
      <documentation>A parameterized mathematical operation on coordinates that transforms or converts coordinates to another coordinate reference system. This coordinate operation uses an operation method, usually with associated parameter values. All concrete types derived from this type shall thus extend this type to include a "usesMethod" element that references one element substitutable for the "_GeneralOperationMethod" element. Similarly, all concrete types derived from this type shall extend this type to include zero or more elements each named "uses...Value" that each use the type of an element substitutable for the "_generalParameterValue" element. </documentation>
    </annotation>
    <complexContent>
      <extension base="gml:AbstractSingleOperationType"/>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="operationRef" type="gml:OperationRefType" substitutionGroup="gml:singleOperationRef"/>
  <!-- =========================================================== -->
  <complexType name="OperationRefType">
    <annotation>
      <documentation>Association to an abstract Operation, either referencing or containing the definition of that Operation. </documentation>
    </annotation>
    <complexContent>
      <restriction base="gml:SingleOperationRefType">
        <sequence>
          <element ref="gml:_Operation" minOccurs="0"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
      </restriction>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="_GeneralConversion" type="gml:AbstractGeneralConversionType" abstract="true" substitutionGroup="gml:_Operation"/>
  <!-- =========================================================== -->
  <complexType name="AbstractGeneralConversionType" abstract="true">
    <annotation>
      <documentation>An abstract operation on coordinates that does not include any change of Datum. The best-known example of a coordinate conversion is a map projection. The parameters describing coordinate conversions are defined rather than empirically derived. Note that some conversions have no parameters. </documentation>
    </annotation>
    <complexContent>
      <restriction base="gml:AbstractOperationType">
        <sequence>
          <element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded"/>
          <element name="coordinateOperationID" type="gml:ExtendedIdentifierType"/>
          <element name="sourceDimensions" type="positiveInteger"/>
          <element name="targetDimensions" type="positiveInteger"/>
          <element name="_PositionalAccuracy" type="gml:AbstractPositionalAccuracyType" minOccurs="0"/>
        </sequence>
        <attribute ref="gml:id" use="optional"/>
      </restriction>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="generalConversionRef" type="gml:GeneralConversionRefType" substitutionGroup="gml:operationRef"/>
  <!-- =========================================================== -->
  <complexType name="GeneralConversionRefType">
    <annotation>
      <documentation>Association to a General Conversion, either referencing or containing the definition of that Conversion. </documentation>
    </annotation>
    <complexContent>
      <restriction base="gml:OperationRefType">
        <sequence>
          <element ref="gml:_GeneralConversion" minOccurs="0"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
      </restriction>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="Conversion" type="gml:ConversionType" substitutionGroup="gml:_GeneralConversion"/>
  <!-- =========================================================== -->
  <complexType name="ConversionType">
    <annotation>
      <documentation>A concrete general-purpose operation on coordinates that does not include any change of Datum. The best-known example of a coordinate conversion is a map projection. The parameters describing coordinate conversions are defined rather than empirically derived. Note that some conversions have no parameters. </documentation>
    </annotation>
    <complexContent>
      <extension base="gml:AbstractGeneralConversionType">
        <sequence>
          <element name="usesMethod" type="gml:OperationMethodRefType">
            <annotation>
              <documentation>Association to the operation method used by this conversion operation. </documentation>
            </annotation>
          </element>
          <element name="usesValue" type="gml:ParameterValueType" minOccurs="0" maxOccurs="unbounded">
            <annotation>
              <documentation>Unordered list of composition associations to the set of parameter values used by this conversion operation. </documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="conversionRef" type="gml:ConversionRefType" substitutionGroup="gml:generalConversionRef"/>
  <!-- =========================================================== -->
  <complexType name="ConversionRefType">
    <annotation>
      <documentation>Association to a concrete general-purpose Conversion, either referencing or containing the definition of that Conversion. </documentation>
    </annotation>
    <complexContent>
      <restriction base="gml:GeneralConversionRefType">
        <sequence>
          <element ref="gml:Conversion" minOccurs="0"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
      </restriction>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="_GeneralTransformation" type="gml:AbstractGeneralTransformationType" abstract="true" substitutionGroup="gml:_Operation"/>
  <!-- =========================================================== -->
  <complexType name="AbstractGeneralTransformationType" abstract="true">
    <annotation>
      <documentation>An abstract operation on coordinates that usually includes a change of Datum. The parameters of a coordinate transformation are empirically derived from data containing the coordinates of a series of points in both coordinate reference systems. This computational process is usually "over-determined", allowing derivation of error (or accuracy) estimates for the transformation. Also, the stochastic nature of the parameters may result in multiple (different) versions of the same coordinate transformation. </documentation>
    </annotation>
    <complexContent>
      <restriction base="gml:AbstractOperationType">
        <sequence>
          <element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded"/>
          <element name="coordinateOperationID" type="gml:ExtendedIdentifierType"/>
          <element name="coordinateOperationVersion" type="string"/>
          <element name="sourceDimensions" type="positiveInteger"/>
          <element name="targetDimensions" type="positiveInteger"/>
          <element name="_PositionalAccuracy" type="gml:AbstractPositionalAccuracyType" minOccurs="0"/>
          <element name="sourceCRS" type="gml:CRSRefType"/>
          <element name="targetCRS" type="gml:CRSRefType"/>
        </sequence>
        <attribute ref="gml:id" use="optional"/>
      </restriction>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="generalTransformationRef" type="gml:GeneralTransformationRefType" substitutionGroup="gml:operationRef"/>
  <!-- =========================================================== -->
  <complexType name="GeneralTransformationRefType">
    <annotation>
      <documentation>Association to a General Transformation, either referencing or containing the definition of that Transformation. </documentation>
    </annotation>
    <complexContent>
      <restriction base="gml:OperationRefType">
        <sequence>
          <element ref="gml:_GeneralTransformation" minOccurs="0"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
      </restriction>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="Transformation" type="gml:TransformationType" substitutionGroup="gml:_GeneralTransformation"/>
  <!-- =========================================================== -->
  <complexType name="TransformationType">
    <annotation>
      <documentation>A concrete general-purpose operation on coordinates that usually includes a change of Datum. The parameters of a coordinate transformation are empirically derived from data containing the coordinates of a series of points in both coordinate reference systems. This computational process is usually "over-determined", allowing derivation of error (or accuracy) estimates for the transformation. Also, the stochastic nature of the parameters may result in multiple (different) versions of the same coordinate transformation. </documentation>
    </annotation>
    <complexContent>
      <extension base="gml:AbstractGeneralTransformationType">
        <sequence>
          <element name="usesMethod" type="gml:OperationMethodRefType">
            <annotation>
              <documentation>Association to the operation method used by this transformation operation. </documentation>
            </annotation>
          </element>
          <element name="usesValue" type="gml:ParameterValueType" minOccurs="0" maxOccurs="unbounded">
            <annotation>
              <documentation>Unordered list of composition associations to the set of parameter values used by this transformation operation. </documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="transformationRef" type="gml:TransformationRefType" substitutionGroup="gml:generalTransformationRef"/>
  <!-- =========================================================== -->
  <complexType name="TransformationRefType">
    <annotation>
      <documentation>Association to a Transformation, either referencing or containing the definition of that Transformation. </documentation>
    </annotation>
    <complexContent>
      <restriction base="gml:GeneralTransformationRefType">
        <sequence>
          <element ref="gml:Transformation" minOccurs="0"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
      </restriction>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="_generalParameterValue" type="gml:GeneralParameterValueType" abstract="true"/>
  <!-- =========================================================== -->
  <complexType name="GeneralParameterValueType" abstract="true">
    <annotation>
      <documentation>An abstract parameter value. All concrete types derived from this type shall extend this type to include one "...value" element with an appropriate type. In addition, all derived concrete types shall extend this type to include a "valueOfParameter" element that references one element substitutable for the "OperationParameter" element. </documentation>
    </annotation>
    <sequence/>
  </complexType>
  <!-- =========================================================== -->
  <element name="parameterValue" type="gml:ParameterValueType" substitutionGroup="gml:_generalParameterValue"/>
  <!-- =========================================================== -->
  <complexType name="ParameterValueType">
    <annotation>
      <documentation>A parameter value or reference to a file of parameter values. </documentation>
    </annotation>
    <complexContent>
      <extension base="gml:GeneralParameterValueType">
        <sequence>
          <choice>
            <element name="value" type="gml:MeasureType">
              <annotation>
                <documentation>Numeric value of an operation parameter, with its associated unit of measure. </documentation>
              </annotation>
            </element>
            <element name="dmsAngleValue" type="gml:DMSAngleType">
              <annotation>
                <documentation>Value of an angle operation parameter, in either degree-minute-second format or single value format. </documentation>
              </annotation>
            </element>
            <element name="stringValue" type="string">
              <annotation>
                <documentation>String value of an operation parameter. A string value does not have an associated unit of measure. </documentation>
              </annotation>
            </element>
            <element name="integerValue" type="positiveInteger">
              <annotation>
                <documentation>Positive integer value of an operation parameter, usually used for a count. An integer value does not have an associated unit of measure. </documentation>
              </annotation>
            </element>
            <element name="booleanValue" type="boolean">
              <annotation>
                <documentation>Boolean value of an operation parameter  A Boolean value does not have an associated unit of measure. </documentation>
              </annotation>
            </element>
            <element name="valueList" type="gml:MeasureListType">
              <annotation>
                <documentation>List of two or more numeric values of an operation parameter list, where each value has the same associated unit of measure. An element of this type contains a space-separated list of double values. </documentation>
              </annotation>
            </element>
            <element name="integerValueList" type="gml:integerList">
              <annotation>
                <documentation>List of two or more integer values of an operation parameter list, usually used for counts. These integer values do not have an associated unit of measure. An element of this type contains a space-separated list of integer values. </documentation>
              </annotation>
            </element>
            <element name="valueFile" type="anyURI">
              <annotation>
                <documentation>Reference to a file containing multiple parameter values, each numeric value with its associated unit of measure. </documentation>
              </annotation>
            </element>
          </choice>
          <element name="valueOfParameter" type="gml:OperationParameterRefType">
            <annotation>
              <documentation>Association to the operation parameter that this is a value of. </documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="_GeneralOperationMethod" type="gml:GeneralOperationMethodType" abstract="true" substitutionGroup="gml:_CRSObject"/>
  <!-- =========================================================== -->
  <complexType name="GeneralOperationMethodType" abstract="true">
    <annotation>
      <documentation>Abstract definition of an algorithm used to perform a coordinate operation. Most operation methods use a number of operation parameters (although some coordinate conversions use none). All concrete types derived from this type shall thus extend this type to include zero or more elements each named "uses..." that each reference one element substitutable for the "OperationParameter" element. </documentation>
    </annotation>
    <complexContent>
      <extension base="gml:AbstractCRSObjectType">
        <sequence>
          <element name="methodID" type="gml:IdentifierType">
            <annotation>
              <documentation>Identification of this operation method. </documentation>
            </annotation>
          </element>
          <element name="formula" type="string">
            <annotation>
              <documentation>Formula(s) used by this operation method. The value may be a reference to a publication. Note that the operation method may not be analytic, in which case this element references or contains the procedure, not an analytic formula.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="generalOperationMethodRef" type="gml:GeneralOperationMethodRefType"/>
  <!-- =========================================================== -->
  <complexType name="GeneralOperationMethodRefType">
    <annotation>
      <documentation>Association to an abstract Operation Method, either referencing or containing the definition of that Operation Method. </documentation>
    </annotation>
    <sequence>
      <element ref="gml:_GeneralOperationMethod" minOccurs="0"/>
    </sequence>
    <attributeGroup ref="gml:AssociationAttributeGroup"/>
  </complexType>
  <!-- =========================================================== -->
  <element name="OperationMethod" type="gml:OperationMethodType" substitutionGroup="gml:_GeneralOperationMethod"/>
  <!-- =========================================================== -->
  <complexType name="OperationMethodType">
    <annotation>
      <documentation>Definition of a concrete general-purpose algorithm used to perform a coordinate operation. Most operation methods use a number of operation parameters (although some coordinate conversions use none). Each coordinate operation using the method assigns values to all these parameters. Most parameter values are numeric, but other types of parameter values are possible. </documentation>
    </annotation>
    <complexContent>
      <extension base="gml:GeneralOperationMethodType">
        <sequence>
          <element name="usesParameter" type="gml:OperationParameterRefType" minOccurs="0" maxOccurs="unbounded">
            <annotation>
              <documentation>Unordered list of associations to the set of operation parameters used by this operation method. </documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="operationMethodRef" type="gml:OperationMethodRefType" substitutionGroup="gml:generalOperationMethodRef"/>
  <!-- =========================================================== -->
  <complexType name="OperationMethodRefType">
    <annotation>
      <documentation>Association to a concrete general-purpose Operation Method, either referencing or containing the definition of that Operation Method. </documentation>
    </annotation>
    <complexContent>
      <restriction base="gml:GeneralOperationMethodRefType">
        <sequence>
          <element ref="gml:OperationMethod" minOccurs="0"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
      </restriction>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="OperationParameter" type="gml:OperationParameterType" substitutionGroup="gml:_CRSObject"/>
  <!-- =========================================================== -->
  <complexType name="OperationParameterType">
    <annotation>
      <documentation>The definition of a parameter used by an operation method. </documentation>
    </annotation>
    <complexContent>
      <extension base="gml:AbstractCRSObjectType">
        <sequence>
          <element name="parameterID" type="gml:IdentifierType">
            <annotation>
              <documentation>Identification of this Operation Parameter. </documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="operationParameterRef" type="gml:OperationParameterRefType"/>
  <!-- =========================================================== -->
  <complexType name="OperationParameterRefType">
    <annotation>
      <documentation>Association to an Operation Parameter, either referencing or containing the definition of that Operation Parameter. </documentation>
    </annotation>
    <sequence>
      <element ref="gml:OperationParameter" minOccurs="0"/>
    </sequence>
    <attributeGroup ref="gml:AssociationAttributeGroup"/>
  </complexType>
</schema>
